﻿using System;
using Microsoft.Xna.Framework;
using System.Diagnostics;

namespace SunXNA.CameraManager.BaseCamera
{
    abstract class CBaseCamera
    {
        #region Public Types
        #endregion

        #region Protected Member Variables

        protected float m_rFOV;
        //protected float m_rPreviousFOV;
        protected Matrix m_m4CurrentViewMatrix;
        //protected Matrix m_m4PreviousViewMatrix;

        #endregion

        #region Public Accessors

        public float FOV
        {
            get
            {
                return m_rFOV;
            }
        }

        //public float PreviousFOV
        //{
        //    get
        //    {
        //        return m_rPreviousFOV;
        //    }
        //}

        public Matrix CurrentViewMatrix
        {
            get
            {
                return m_m4CurrentViewMatrix;
            }
        }

        //public Matrix PreviousViewMatrix
        //{
        //    get
        //    {
        //        return m_m4PreviousViewMatrix;
        //    }
        //}

        #endregion

        #region Public Member Functions

        public CBaseCamera()
        {
            m_m4CurrentViewMatrix = Matrix.Identity;
            //m_m4PreviousViewMatrix = Matrix.Identity;
            m_rFOV = MathHelper.PiOver4;    //45 degrees
            //m_rPreviousFOV = MathHelper.PiOver4;
        }

        public virtual void Step(GameTime gameTime)
        {
            //m_rPreviousFOV = m_rFOV;
            //m_m4PreviousViewMatrix = m_m4CurrentViewMatrix;
        }

        #endregion
    }
}
